在上一篇章當中我們有稍微講解過整個程式邏輯架構,這個篇章當中我們來詳解程式碼得部分
public ActionResult DoLogin(loginfo info)
{
//與資料庫連接
string connstr = "Data Source=CSIE-TEST2;Initial Catalog=Student_data;UserID=TEST03;Password=1qaz@WSX;Encrypt=False";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
//下SQL語法
SqlCommand cmd = new SqlCommand("select * from student_login where account=@Account and Password=@Password");
cmd.Connection = conn;
//填入參數(使用者輸入的帳號密碼)
cmd.Parameters.AddWithValue("@account", info.Account);
cmd.Parameters.AddWithValue("@Password", info.Password);
//執行SQL語法來查詢是否有這組帳密
SqlDataAdapter adpt = new SqlDataAdapter();
DataSet ds = new DataSet();
adpt.SelectCommand = cmd;
adpt.Fill(ds);
//如果有就跳轉到首頁
if (ds.Tables[0].Rows.Count > 0)
{
return RedirectToAction("Index");
}
在下方的資料庫連接當中,連接字串如何獲取(connstr)?
在上次連接的資料庫當中按下屬性
在右邊紅色框框中就是連接字串,裡面包含要與資料庫溝通所需要的資訊,把它複製下來後直接貼到字串當中,但是密碼必須修改成使用者的密碼。
//與資料庫連接
string connstr = "Data Source=CSIE-TEST2;Initial Catalog=Student_data;UserID=TEST03;Password=1qaz@WSX;Encrypt=False";
SqlConnection conn = new SqlConnection(connstr);
SqlConnection conn = new SqlConnection(connstr);這句語法其實使用的是創建class的物件,其實在.net framwork下有很多class,簡單來說就是使用其他人已經寫好了的功能,我們把它拿來用,(class名稱 物件名稱 =new class名稱(參數)),那這個物件的主要功能是與資料庫連接。
//下SQL語法
SqlCommand cmd = new SqlCommand("select * from student_login where account=@Account and Password=@Password");
cmd.Connection = conn;
這句語法與上述手法相同,但所需要的參數是sql語法,這裡的語法解釋是找尋帳號密碼=使用者輸入的帳號密碼,但在這邊語法並未執行cmd.Commectiom=conn是此語法是連接哪個資料庫,那就是連接上一段程式碼的conn。
cmd.Parameters.AddWithValue("@account", info.Account);
cmd.Parameters.AddWithValue("@Password", info.Password);
在在語法當中填入參數
//執行SQL語法來查詢是否有這組帳密
SqlDataAdapter adpt = new SqlDataAdapter();
DataSet ds = new DataSet();
adpt.SelectCommand = cmd;
adpt.Fill(ds);
//如果有就跳轉到首頁
if (ds.Tables[0].Rows.Count > 0)
{
return RedirectToAction("Index");
}
在這段語法當中也是大量使用物件,其中在 adpt.SelectCommand = cmd;adpt.Fill(ds);這當中是把在資料庫搜尋到的結果儲存到容器當中,if判斷式則是判斷容器當中是否是空的,如果不是就代表帳號密碼輸入正確,否則沒有這組帳號密碼。
總結:
這段程式碼當中其實有很多別人已經寫好的功能,但是我們需要學會去使用,在這當中創建一個物件的語法會大量出現例如: DataSet ds = new DataSet();,但不須特別去記,只需要在會使用到的情況下去查詢如何使用就好。